/**
 * Subscripcion.java 
 * Clase que respresenta una subscripcion a ofertas que cumplan determinadas condiciones
 * puede publicar ofertas.
 * @author Esther García Galán
 * @author Rubén Gómez Vales
 */
package ocio.beans;

import java.io.Serializable;

/**
 * Respresenta la subscripcion de un usuario a un tipo de ofertas que cumplan unas características determinadas. 
 * El usuario solicita mediante la subscripción que le sean notificadas las ofertas que le sean de interés.
 * @author Esther García Galán
 * @author Rubén Gómez Vales
 * @version 1.0 13/05/2014
 * @see ocio.beans.Oferta
 * @see ocio.beans.Cliente 
 */
public class Subscripcion implements Serializable {

	private static final long serialVersionUID = 1L;
	private int id;
	private int tipo; //1,2,3
	private Subtipo subtipo;
	private Provincia provincia;
	private Cliente cliente;
	private Admin admin;

	/**
	 * Constructor de Clase.	
	 */
	public Subscripcion(){
		
	}
	
	 /**
	 * Método getter.         
	 * @return id Devuelve el identificador único en base de datos de la subscripción.
	 */ 
	public int getId() {
		return id;
	}
	
	/**
	 * Método setter.         
	 * @param id Asigna a la subscripción un identificador único para la base de datos.
	 */ 
	public void setId(int id) {
		this.id = id;
	}
	
	 /**
	 * Método getter.         
	 * @return tipo Devuelve tipo de producto sobre el que el usuario muestra interés,
	 * 1 para Restaurante, 2 para Espectáculos y 3 para Actividades.
	 */ 
	public int getTipo() {
		return tipo;
	}
	
	/**
	 * Método setter.         
	 * @param tipo Establece el tipo de producto sobre el que el usuario muestra interés,
	 * 1 para Restaurante, 2 para Espectáculos y 3 para Actividades.
	 */ 
	public void setTipo(int tipo) {
		this.tipo = tipo;
	}
	
	 /**
	 * Método getter.         
	 * @return subtipo Devuelve el subtipo sobre el que el usuario muestra interés,
	 * dentro de los definidos para cada tipo
	 */ 
	public Subtipo getSubtipo() {
		return subtipo;
	}
	
	/**
	 * Método setter.         
	 * @param subtipo Establece el subtipo sobre el que el usuario muestra interés,
	 * dentro de los definidos para cada tipo
	 */ 
	public void setSubtipo(Subtipo subtipo) {
		this.subtipo = subtipo;
	}
	
	 /**
	 * Método getter.         
	 * @return provincia Devuelve la provincia en la que el usuario muestra interés.
	 */ 
	public Provincia getProvincia() {
		return provincia;
	}
	
	/**
	 * Método setter.         
	 * @param provincia Establece la provincia en la que el usuario muestra interés.
	 */ 
	public void setProvincia(Provincia provincia) {
		this.provincia = provincia;
	}
	
	 /**
	 * Método getter.         
	 * @return cliente Devuelve el cliente que ha realizado la subscripcion, cuando no sea el administrador.
	 */ 
	public Cliente getCliente() {
		return cliente;
	}
	
	/**
	 * Método setter.         
	 * @param cliente Establece el cliente que ha realizado la subscripcion, cuando no sea el administrador.
	 */ 
	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
	}

	 /**
	 * Método getter.         
	 * @return admin Devuelve el administrador cuando sea este el que ha realizado la subscripción.
	 */ 
	public Admin getAdmin() {
		return admin;
	}

	/**
	 * Método setter.         
	 * @param admin Establece el administrador como el usuario que ha realizado la subscripción.
	 */ 
	public void setAdmin(Admin admin) {
		this.admin = admin;
	}
}
